package com.ruoyi.system.domain.vo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * @author : weixu
 * @date : 2024/7/1 9:51
 * 文件上传响应
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class FileUploadVO implements Serializable {
    /**
     * 是否上传成功 1：是  0：否
     */
    private Boolean isFinish;

    /**
     * 文件地址
     */
    private String path;

    /**
     * 上传记录
     */
    private TaskRecord taskRecord;

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    public static class TaskRecord implements Serializable {
        /**
         * 文件唯一标识（md5）
         */
        private String fileMd5;

        /**
         * 每个分片大小（byte）
         */
        private Long chunkSize;

        /**
         * 分片数量
         */
        private Integer chunkNum;

        /**
         * 已上传完的分片
         */
        private List<PartVO> exitPartList;
    }
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    public static class PartVO {
        private Integer partNumber;
        private Long size;
    }

}
